package com.movitech.mobile.cz.base.purchase.bizservice;

import com.baomidou.mybatisplus.plugins.Page;
import com.movitech.mobile.cz.base.modules.controller.RestReturnResult;
import com.movitech.mobile.cz.base.purchase.bizvo.DealRequestVO;
import com.movitech.mobile.cz.base.purchase.bizvo.InvitationDetailResponse;
import com.movitech.mobile.cz.base.purchase.bizvo.ManageCenterRequestVO;
import com.movitech.mobile.cz.base.purchase.bizvo.QuestionBidRequestVO;
import com.movitech.mobile.cz.base.purchase.bizvo.outer.*;
import com.movitech.mobile.cz.base.purchase.entity.ext.ExtWFlowFormExtMng;

import javax.servlet.http.HttpServletRequest;

/**
 * Created by robie.cao on 2018/4/25.
 */
public interface OuterWorkFlowService {

    /**
     * 根据表单id查询招标文件
     * @param formId
     * @return
     */
    public RestReturnResult<Object> getBidingDoc(String formId);

    /**
     * 获取邀请函
     * @param request
     * @param formId
     * @return
     */
    RestReturnResult  getPlanInvitation(HttpServletRequest request, String formId);

    /**
     * 回复邀请函
     * @param request
     * @param actionType
     * @return
     */
    RestReturnResult replyInvitation(HttpServletRequest request,String formId,Integer actionType);

    /**
     * 获取发标文件
     * @param request
     * @param formId
     * @return
     */
    RestReturnResult getBidAttach(HttpServletRequest request,String formId);

    /**
     * 外网质疑
     * @param request
     * @param questionBidRequestVO
     * @return
     */
    RestReturnResult questionBid(HttpServletRequest request,QuestionBidRequestVO questionBidRequestVO);

    /**
     * 管理中心
     * @param request
     * @return
     */
    RestReturnResult managementCenter(HttpServletRequest request);


    /**
     * 管理中心列表
     * @param request
     * @param manageCenterRequestVO
     * @return
     */
    RestReturnResult managementCenterList(HttpServletRequest request,ManageCenterRequestVO manageCenterRequestVO);


    Page getBidManageData(Page<ExtWFlowFormExtMng> page , BidManageReqVo vo);

    BidItemDetailVo purchaseItemDetail(String id) throws Exception;

    void invitationReply(DealRequestVO vo);

    InvitationDetailResponse invitationDetail(String formId);

    BidFileDownRspVo bidFileList(BidFileDownReqVo vo);

    DownRspVo bidFileDown(AttachDownVo vo);

    AskQuestionRspVo askAndAnswerList(String formId);

    void questionsSumit(QuestionsReqVo vo);

    boolean checkQuestionTime(QuestionsReqVo vo);

    BackBidRspVo backBidDetail(BackBidReqVo vo);

    void backBidSubmit(BackBidSubmitVo vo);

    InquiringBidRspVo inquiringBidList(String formId);

    void inquiringBidSubmit(InquiringBidReqVo inquiringBidReqVo);

    NoticeAndThanksRspVo noticeAndThanksList(String formId);

    Object selectMyDealList(DealListReqVo dealListReqVo);
}
